# 编译器：设备树编译工具
DTC = /linux/rk3576/sdk/kernel-6.1/scripts/dtc/dtc

# 源文件目录（存放.dtsi）
SRC_DIR := $(shell pwd)

# 输出目录（存放生成的.dtbo）
OUT_DIR = $(shell pwd)/../../build

# 依赖文件目录（存放.dtsi）
INC_DIR = /linux/rk3576/sdk/kernel-6.1/include
DTS_FILES = $(wildcard $(SRC_DIR)/*.dtsi)

# 生成的.dtbo文件（与.dts同名，输出到out目录）
DTBO_FILES = $(patsubst $(SRC_DIR)/%.dtsi, $(OUT_DIR)/%.dtbo, $(DTS_FILES))

# 编译选项：启用overlay模式，指定依赖目录
DTC_FLAGS = -I dts -O dtbo -@ -i $(SRC_DIR) -i $(INC_DIR)        

# 默认目标：编译所有dtbo
all: $(OUT_DIR) $(DTBO_FILES)
	@echo "所有设备树插件编译完成！输出目录：$(OUT_DIR)"

# 创建输出目录
$(OUT_DIR):
	mkdir -p $(OUT_DIR)

# 编译规则：将.dtsi转换为.dtbo
$(OUT_DIR)/%.dtbo: $(SRC_DIR)/%.dtsi
	@echo "编译 $< -> $@"
	$(DTC) $(DTC_FLAGS) -o $@ $<

# 清理生成的文件
clean:
	rm -rf $(OUT_DIR)/*.dtbo
	@echo "已清理所有编译产物"

# 伪目标（避免与文件重名）
.PHONY: all clean
